P+ - Donkey Kong - Action - 0x12e

Entry Script

  1. CreateInterrupt { interrupt_id: None, action: 0x130, requirement: (ButtonPress value(1)) }
  2. CreateInterrupt { interrupt_id: None, action: 0x12f, requirement: (BoolIsTrue RandomAccessBool (0x11)) }
  3. PreviousInterruptAddRequirement(AnimationHasLooped)
  4. CreateInterrupt { interrupt_id: None, action: Wait, requirement: ((LongtermAccessInt(Temp1) GreaterThanOrEqual InternalConstantInt (0x5dc0))) }
  5. PreviousInterruptAddRequirement(AnimationHasLooped)
  6. PreviousInterruptAddRequirement(OnGround)
  7. CreateInterrupt { interrupt_id: None, action: Fall, requirement: ((LongtermAccessInt(Temp1) GreaterThanOrEqual InternalConstantInt (0x5dc0))) }
  8. PreviousInterruptAddRequirement(AnimationHasLooped)
  9. PreviousInterruptAddRequirement(InAir)
  10. CreateInterrupt { interrupt_id: None, action: EscapeF, requirement: ((InternalConstantInt(ControlStickXAxisRelative) GreaterThanOrEqual InternalConstantInt (0xc4d))) }
  11. PreviousInterruptAddRequirement((InternalConstantInt (0x5209) LessThan InternalConstantInt (0x59fe)))
  12. PreviousInterruptAddRequirement(OnGround)
  13. CreateInterrupt { interrupt_id: None, action: EscapeB, requirement: ((InternalConstantInt(ControlStickXAxisRelativeReverse) GreaterThanOrEqual InternalConstantInt (0xc4d))) }
  14. PreviousInterruptAddRequirement((InternalConstantInt (0x5209) LessThan InternalConstantInt (0x59fe)))
  15. PreviousInterruptAddRequirement(OnGround)
  16. CallEveryFrame { thread_id: 9, script: 0x1f948 }
  17. BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
  18. loop Infinite times:
    1. if (OnGround)
      1. SetEdgeSlide(StayOn)
      2. UnknownEvent { namespace: 0x8, code: 0x1, unk1: 0x0, arguments: [Value(0)] }
      3. SetAirGround(6)
      4. if (BoolIsTrue RandomAccessBool(EnableActionTransition))
        1. ChangeSubactionRestartFrame(SpecialNLoop)
      5. else
        1. ChangeSubaction(SpecialNLoop)
      6. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: InAir }] }
    2. else
      1. SetEdgeSlide(Airbourne)
      2. UnknownEvent { namespace: 0x8, code: 0x1, unk1: 0x0, arguments: [Value(4)] }
      3. SetAirGround(10)
      4. if (BoolIsTrue RandomAccessBool(EnableActionTransition))
        1. ChangeSubactionRestartFrame(SpecialAirNLoop)
      5. else
        1. ChangeSubaction(SpecialAirNLoop)
      6. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: OnGround }] }
    3. BoolVariableSetFalse { variable: RandomAccessBool(EnableActionTransition) }
    4. LoopRest

Exit Script

  1. if ((InternalConstantInt(CurrentAction) NotEqual scalar(0)))
    1. IfStatementAnd ((InternalConstantInt(CurrentAction) NotEqual scalar(14)))
    2. IfStatementAnd ((InternalConstantInt(CurrentAction) NotEqual scalar(31)))
    3. IfStatementAnd ((InternalConstantInt(CurrentAction) NotEqual scalar(32)))
    4. IfStatementAnd ((InternalConstantInt(CurrentAction) NotEqual scalar(304)))
    5. IfStatementAnd ((InternalConstantInt(CurrentAction) NotEqual scalar(303)))
    6. IntVariableSet { variable: LongtermAccessInt(Temp1), value: 0 }